home *** CD-ROM | disk | FTP | other *** search
-
-
-
- EEEELLLLFFFF((((4444)))) EEEELLLLFFFF((((4444))))
-
-
-
- NNNNAAAAMMMMEEEE
- elf - Executable and Linking Format (ELF) files
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ####iiiinnnncccclllluuuuddddeeee <<<<eeeellllffff....hhhh>>>>
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- The file name _a._o_u_t is the default ELF-format output file name from the
- link editor _l_d(1). The link editor will make an _a._o_u_t executable if
- there were no errors and no unresolved external references.
-
- Programs that manipulate ELF files may use the library described in
- _e_l_f(3E). An overview of the file format follows. For more complete
- information, see the references given below.
-
- LLLLiiiinnnnkkkkiiiinnnngggg VVVViiiieeeewwww EEEExxxxeeeeccccuuuuttttiiiioooonnnn VVVViiiieeeewwww
- ELF header ELF header
- Program header table Program header table
- (optional)
- Section 1 Segment 1
- ... ...
- Section _n Segment _n
- Section header table Section header table
- (optional)
-
- An ELF header resides at the beginning and holds a ``road map''
- describing the file's organization. Sections hold the bulk of object
- file information for the linking view: instructions, data, symbol table,
- relocation information, and so on. Segments hold the object file
- information for the program execution view. A segment may contain one or
- more sections.
-
- A program header table, if present, tells the system how to create a
- process image. Files used to build a process image (execute a program)
- must have a program header table; relocatable files do not need one. A
- section header table contains information describing the file's sections.
- Every section has an entry in the table; each entry gives information
- such as the section name, the section size, etc. Files used during
- linking must have a section header table; other object files may or may
- not have one. SGI executables and DSO files will be created with section
- header tables, so their absence in an object file, while not prohibited,
- may disable various tools.
-
- Although the table above shows the program header table immediately after
- the ELF header, and the section header table following the sections,
- actual files may differ. Moreover, sections and segments have no
- specified order. Only the ELF header has a fixed position in the file.
-
- When an _a._o_u_t file is loaded into memory for execution, three kinds of
- logical segments are set up: the text segment, the data segment
- (initialized data followed by uninitialized, the latter actually being
- initialized to all 0's), and a stack. A program can have multiple text
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- EEEELLLLFFFF((((4444)))) EEEELLLLFFFF((((4444))))
-
-
-
- and data segments but only one stack segment. The text segments are not
- writable by the program; if other processes are executing the same _a._o_u_t
- file, the processes will share the same text segments.
-
- The first data segment generally starts at the next maximal page boundary
- past the last text address. If the system supports more than one page
- size, the ``maximal page'' is the largest supported size. When the
- process image is created, the part of the file holding the end of text
- and the beginning of data may appear twice. The duplicated chunk of text
- that appears at the beginning of data is never executed; it is duplicated
- so that the operating system may bring in pieces of the file in multiples
- of the actual page size without having to realign the beginning of the
- data section to a page boundary. Therefore, the first data address is
- the sum of the next maximal page boundary past the end of text plus the
- remainder of the last text address divided by the maximal page size. If
- the last text address is a multiple of the maximal page size, no
- duplication is necessary. The stack is extended automatically as
- required. The last data segment is extended as requested by the _b_r_k(2)
- system call.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- as(1), cc(1), ld(1), brk(2), a.out(4)
- _I_R_I_X _S_y_s_t_e_m _P_r_o_g_r_a_m_m_e_r'_s _G_u_i_d_e
-
- NNNNOOOOTTTTEEEESSSS
- ELF is the executable and object file format used on IRIX 5 and later
- systems.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-